curl_multi_setopt
为 cURL 并行处理设置一个选项
PHP 5.1.0及以上版本
curl_multi_setopt 函数用于为多个 cURL 句柄设置不同的选项。这个函数通过为多个并发的 cURL 请求配置选项来提高请求效率,尤其适用于使用 curl_multi_init 初始化的多个 cURL 句柄。
curl_multi_setopt(curl_multi_handle, option, value);
成功时返回 true,失败时返回 false。
以下是一个示例,展示如何使用 curl_multi_setopt 设置多个 cURL 请求的选项:
$mh = curl_multi_init(); // 初始化多重 cURL 句柄 <p>$ch1 = curl_init('<a rel="noopener" target="_new" class="" href="http://example.com">http://example.com</a>'); // 初始化第一个 cURL 句柄<br> $ch2 = curl_init('<a rel="noopener" target="_new" class="" href="http://example.org">http://example.org</a>'); // 初始化第二个 cURL 句柄</p> <p>curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); // 设置第一个 cURL 请求选项<br> curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); // 设置第二个 cURL 请求选项</p> <p>curl_multi_add_handle($mh, $ch1); // 添加第一个句柄到 multi<br> curl_multi_add_handle($mh, $ch2); // 添加第二个句柄到 multi</p> <p>// 使用 curl_multi_setopt 设置其他选项<br> curl_multi_setopt($mh, CURLOPT_TIMEOUT, 30); // 设置超时时间</p> <p>$running = null;<br> do {<br> curl_multi_exec($mh, $running); // 执行并保持多线程请求<br> } while ($running);</p> <p>// 关闭句柄<br> curl_multi_remove_handle($mh, $ch1);<br> curl_multi_remove_handle($mh, $ch2);<br> curl_multi_close($mh);<br>
在此示例中,我们创建了两个独立的 cURL 请求($ch1 和 $ch2),并将它们添加到一个多重句柄 $mh 中。然后使用 curl_multi_setopt 设置超时选项,最后执行多个请求并等待它们完成。